package com.example.http.code4xx;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletResponse;


/**
 * 总结：
 * 1.关于4xx的状态码，浏览器对状态码并不会采取过多的处理
 * 比如你设置一个401状态码，浏览器就一定要进行认证处理一样，不会像3xx状态码那样
 * 你设置了301，并设置location属性，那么浏览器就会访问location输入的地址信息了
 * 2.关于4xx状态码更多是一种状态标识
 * 比如404，标识当前访问的资源在服务端不存在，但是，设置401给浏览器返回说你访问的资源不存在一样
 * 3.后续了解通过设置401，403，让浏览器采取强制措施
 * 只是猜想，感觉是错误的
 */

/**
 * 测试HTTP协议关于4xx状态码
 * @author zhouxl
 * @DATE 2021/1/21
 * @descriptoin
 */
@Controller
@RequestMapping("api/code")
public class Code4xx {

    /**
     * 状态码400测试
     * @author zhouxl
     * @date 2021-01-21
     * @param response
     * @return java.lang.String
     */
    @RequestMapping("/code400")
    public String code400(HttpServletResponse response) {
        response.setStatus(400);
        return "400";
    }

    /**
     * 状态码401测试
     * @author zhouxl
     * @date 2021-01-21
     * @param response
     * @return java.lang.String
     */
    @RequestMapping("/code401")
    public String code401(HttpServletResponse response) {
        response.setStatus(401);
        return "401";
    }

    /**
     * 状态码403测试
     * @author zhouxl
     * @date 2021-01-21
     * @param response
     * @return java.lang.String
     */
    @RequestMapping("/code403")
    public String code403(HttpServletResponse response) {
        response.setStatus(403);
        return "403";
    }

    /**
     * 状态码404测试
     * @author zhouxl
     * @date 2021-01-21
     * @param response
     * @return java.lang.String
     */
    @RequestMapping("/code404")
    public String code404(HttpServletResponse response) {
        response.setStatus(404);
        return "404";
    }

}
